<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        /* =========================    面试题    ===================================/
        // ==> var let const 的区别？
        // 1．只有let / const可以形成块级作用域
        // 2. let / const 不存在变量提升，var有
        // 3. let / const 不允许重复声明，var可以
        // 4. let / const存在暂时性死区（temporal dead zone） TDZ
        // 5．浏览器中，var声明的变量在全局作用域中挂载到window对象上

        // ==> 3. 解释

        //===>const关键字
         // 1. const一旦声明，必须马上赋值
         // 2. const声明的变量不能改变值，（简单类型不能改变值，引用类型不能改变地址)
         /*==================== end ===================== */


                //==> const
        let p; var c;
        const name1 = '马上赋值'
        // const test; // Error

        // function count(){
        //     let a = 1 
        //     var a = 2
        // }
        // function count2(){
        //     let a = 1 
        //     let a = 2
        // }

        // ==> 4. 解释
        // if(true){
        //     temp = 'hello world '
        //     let temp;
        // }

        // ==> 5.解释
        var abc = 666
        console.log(window.abc)
        // ==> 不建议使用var 声明name这个名字， window本身有name这个属性
        var name = 123
        console.log(window)

        
        
    </script>
</body>
</html>